fix: replace torch.tensor copy-constructs with as_tensor - #576
Open
srivarra wants to merge 4 commits into
Open
Conversation
clears up some warnings, and removes the double copy if you do torch.tensor(x).clone() and stops the autograd graph from detaching with torch.tensor() Signed-off-by: Sricharan Reddy Varra <sricharan.varra@biohub.org>
torch.tensor(np.meshgrid(...)) get list of 2 ndarrays. torch walk it as generic python sequence, one scalar read+store per element. warn "Creating a tensor from a list of numpy.ndarrays is extremely slow". np.stack first = 2 bulk memcpy, then as_tensor wrap zero-copy. 256x256: 10104 us -> 88 us 2048x2048: 682144 us -> 60850 us output bit-identical, dtype stay int64. last remaining copy warning in repo, so all paths now clean. Signed-off-by: Sricharan Reddy Varra <sricharan.varra@biohub.org>
assert on torch warning substring. couple suite to vendor message text,
which already drift across versions ("clone().detach()" in torch 2.0 vs
"detach().clone()" in 2.10).
also redundant. only way to bring warning back is torch.tensor(tensor),
which detach autograd too, so test_gradients_reach_copied_outputs catch
same regression.
keep test_estimate_copying (copy contract, sibling of existing
test_copying) and test_gradients_reach_copied_outputs (catch silent
detach; warning itself invisible in prod since cli/main.py set
PYTHONWARNINGS=ignore::UserWarning).
Signed-off-by: Sricharan Reddy Varra <sricharan.varra@biohub.org>
existing test_copying already cover copy contract for stokes_after_adr and mueller_from_stokes. estimate_* variant add no new coverage. Signed-off-by: Sricharan Reddy Varra <sricharan.varra@biohub.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
clears up some warnings, and removes the double copy if you do
torch.tensor(x).clone()and stops the autograd graph from detaching withtorch.tensor().